package com.ekuaitu.kuaitu.utils;

import android.app.Dialog;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

import com.ekuaitu.kuaitu.R;

/**
 * 创建自定义的dialog，主要学习其实现原理
 * Created by Michael Pi on 2016/3/22.
 */
public class BikeInsufficientDepositDialog extends Dialog {

    private Button yes;//确定按钮
    private Button no;//取消按钮
    //确定文本和取消文本的显示内容
    private String yesStr, noStr;
    private TextView tvBalance;//余额
    private TextView tvMoney;//应付金额
    private String balance ;
    private String money;
    private onNoOnclickListener noOnclickListener;//取消按钮被点击了的监听器
    private onYesOnclickListener yesOnclickListener;//确定按钮被点击了的监听器

    /**
     * 设置取消按钮的显示内容和监听
     *
     * @param str
     * @param onNoOnclickListener
     */
    public void setNoOnclickListener(String str, onNoOnclickListener onNoOnclickListener) {
        if (str != null) {
            noStr = str;
        }
        this.noOnclickListener = onNoOnclickListener;
    }

    /**
     * 设置确定按钮的显示内容和监听
     *
     * @param str
     * @param onYesOnclickListener
     */
    public void setYesOnclickListener(String str, onYesOnclickListener onYesOnclickListener) {
        if (str != null) {
            yesStr = str;
        }
        this.yesOnclickListener = onYesOnclickListener;
    }

    public BikeInsufficientDepositDialog(Context context) {
        super(context, R.style.MyDialog);
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.dialog_bike_insufficient_deposit);
        //按空白处不能取消动画
        setCanceledOnTouchOutside(false);

        //初始化界面控件
        initView();
        //初始化界面数据
        initData();
        //初始化界面控件的事件
        initEvent();

    }

    /**
     * 初始化界面的确定和取消监听器
     */
    private void initEvent() {
        //设置确定按钮被点击后，向外界提供监听
        if (yes != null) {
            yes.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    if (yesOnclickListener != null) {
                        yesOnclickListener.onYesClick();
                    }
                }
            });
        }
        if (no != null) {
            //设置取消按钮被点击后，向外界提供监听
            no.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    if (noOnclickListener != null) {
                        noOnclickListener.onNoClick();
                    }
                }
            });
        }
    }

    /**
     * 初始化界面控件的显示数据
     */
    private void initData() {
        if (balance != null) {
            tvBalance.setText(balance);
        }
        if (money != null) {
            tvMoney.setText(money);
        }
    }

    /**
     * 初始化界面控件
     */
    private void initView() {
        yes = (Button) findViewById(R.id.yes);
        no = (Button) findViewById(R.id.no);
        tvBalance = (TextView) findViewById(R.id.dialog_bike_balance);
        tvMoney = (TextView) findViewById(R.id.dialog_pay_money);
    }



    /**
     * 余额
     *
     * @param balance
     */
    public void setBalance(String balance) {
        this.balance = "当前余额" + balance + "元";
    }

    /**
     * 应付金额
     *
     * @param money
     */
    public void setPayMoney(String money) {
        this.money = "应付金额" + money + "元";
    }

    /**
     * 设置确定按钮和取消被点击的接口
     */
    public interface onYesOnclickListener {
        public void onYesClick();
    }

    public interface onNoOnclickListener {
        public void onNoClick();
    }
}
